/*用户注册验证页面前端传后端json数据*/

package com.rope.backEnd.controller;


import com.rope.backEnd.io.FileCopyUtil;
import com.rope.backEnd.pojo.User;
import com.rope.backEnd.service.UserReVeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.io.IOException;

@Slf4j
@RestController
@Controller
@CrossOrigin(originPatterns = "*", methods = {RequestMethod.GET, RequestMethod.POST})
public class UserReVeController {

    @Autowired
    private UserReVeService userReVeService;


//    注册功能
    @PostMapping("/userReVe")
    public ResponseEntity<String> createUser(@RequestBody User user) throws IOException {
        System.out.println("初始"+user.getAvatar());
        String userName = user.getName();
        log.info("返回数据");
        // 处理接收到的用户信息
//        检查是否注册过examine(用户名)       succeed(成功)
        User userReVeSe=userReVeService.examine(userName);
//        未注册
        //判断是否为空
        if(userReVeSe == null){
            //开始注册eneoll(用户信息)
            int userReVe=userReVeService.enroll(user);
            //返回指定的数据
            if(userReVe!=0){
                System.out.println("开始操作文件");
                if (user.getAvatar().equals("http://localhost:8080/images/img/photos/userf.png")) {
                    System.out.println("原始头像");
                    return ResponseEntity.ok("注册成功");//该名字成功
                }
                String prefix = "http://localhost/images/img/photos/";
                //提取头像的名称
                String avaUrl = user.getAvatar().replace(prefix,"");

                //提取头像的名称
                System.out.println("提取头像的名称"+avaUrl);

                FileCopyUtil.avatarName(avaUrl);

                return ResponseEntity.ok("注册成功");//该名字成功
            }
            else {
                return ResponseEntity.ok("注册有误");//有误
            }
        }
        //注册不成功，返回的数据
        else {
            return ResponseEntity.ok("该名字已注册");//该名字已注册
        }

    }
    //登录功能
    @PostMapping("/userLogin")
    public ResponseEntity<String> loginUser(@RequestBody User user){

        //        检查是否注册过examine(用户名) 并返回用户数据      succeed(成功)
        String userName = user.getName();
        User userLogin=userReVeService.examine(userName);

        //判断是否不为空,并且没有被封锁
        if(userLogin != null && userLogin.getState()==1){
            //开始的登录
            if(userLogin.getPassword().equals(user.getPassword())){
                return ResponseEntity.ok("登陆成功");//登陆成功
            }
            else{
                return ResponseEntity.ok("密码错误");//密码错误
            }

        }
        else if(userLogin == null){
            return ResponseEntity.ok("该用户不存在");//该用户不存在
        }
        else if(userLogin.getState()==0){
            return ResponseEntity.ok("账号已冻结");//账号已冻结
        }
        else{
            return ResponseEntity.ok("未知错误");//未知错误
        }
    }
    //将要改进为查询该用户的所有信息       还未更改代码
//    @PostMapping("/userAttribute")
//    public Result AttributeUser(@RequestBody User user){
//        //        检查是否注册过examine(用户名) 并返回用户数据      succeed(成功)
//        String userName = user.getName();
//        User userAttribute=userReVeService.examine(userName);
//        System.out.println("\n已经获取到信息\n"+userAttribute);
//        return Result.success(userAttribute);
//    }

    @PostMapping("/userAttribute")
    public ResponseEntity<String> AttributeUser(@RequestBody User user){
        //        检查是否注册过examine(用户名) 并返回用户数据      succeed(成功)
        String userName = user.getName();
        User userAttribute=userReVeService.examine(userName);

        return ResponseEntity.ok(userAttribute.getAvatar());
    }

    @PostMapping("/userState")
    public ResponseEntity<String> StateUser(@RequestBody User user){
        //        检查是否注册过examine(用户名) 并返回用户数据      succeed(成功)
        String userName = user.getName();
        int userAvatar=userReVeService.state(userName);
        if(userAvatar!=0){
            return ResponseEntity.ok("账号已冻结");
        }
        else {
            return ResponseEntity.ok("账号没有冻结成功");
        }
    }

}
